Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

crane package options modified exposing WithPageSize #2062

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

richardoriginal
Copy link

Crane package options modified exposing WithPageSize, adding pageSize option, and including a test for the function.

When using pkg/crane to retrieve the catalog of a registry, the pageSize of the GET request to a registry, n, is not exposed to the options structure or function. Although the default value of 1000 is intended to be used, the registry manifest default of 10000 is used instead. This causes an error when using the official registry:

docker run -d -p 5000:5000 --restart always --name registry registry:2

repos, err = crane.Catalog(reg, options...)

Error:

"errors":[{"code":"PAGINATION_NUMBER_INVALID","message":"invalid number of results requested","detail":{"n":10000}}],"StatusCode":400}

This is the same error as using curl:
curl http://localhost:5000/v2/_catalog?n=10000 {"errors":[{"code":"PAGINATION_NUMBER_INVALID","message":"invalid number of results requested","detail":{"n":10000}}]}

It is not possible to pass the page size n value to the crane package as the function and option is not exposed outside of the lower level pkg/remote options. The effect is that as a value is not being set, the unintended default of 10000 is used, which the official registry image is not happy about.

There may be a more elegant or architecturally sound fix but my changes below fix the issue.

… option, and including a test for the function
Copy link

google-cla bot commented Feb 13, 2025

Thanks for your pull request! It looks like this may be your first contribution to a Google open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA).

View this failed invocation of the CLA check for more information.

For the most up to date status, view the checks section at the bottom of the pull request.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant